package com.xdf.xzymanagementsystem.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Tolerate;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 由 chanchaw 创建于 2025-3-21 18:43:41，实现功能如下：
 * 1. 实现接口 Serializable
 * 2. 无参构造函数
 * 3. 建造者模式
 * 4. getter,setter,toString()
 * 单据,主表,订单
 */
@Data
@Builder
@Table("payment")
public class Payment implements Serializable {
    @Tolerate
    public Payment() {}

    @Override
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    @Id(keyType = KeyType.Auto)
    private Integer id;//自增主键
    private Integer category;//生产工艺环节，0加工户，1前处理，2染厂，3深加工1，4深加工2，5客户。本字段0则表示付款给加工户，4则表示付款给深加工2。加工户付款序时表中默认填充该字段为0.
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date billDate;//单据日期/业务发生日期，默认当天，用户可以修改
    private String sid;//项目名称 = jc_simple.category = 付款项目
    private Integer clientId;//往来单位主键，如果是加工户则是加工户的主键，染厂则是染厂的主键
    private BigDecimal money;//金额
    private String payType;//付款类型 = jc_simple.category = 付款类型
    private String chargePerson;//经手人/负责任，备用
    private String remark;//备注
    private Integer state;//状态，默认1有效，0已作废，2已审核，3已驳回
    private Integer isDelete;//删除标识，默认0未删除，1表示删除。mybatis-flex默认使用该名称作为逻辑删除的标识
    private String sysRemark;//系统备注，系统在做自动化操作时用于说明业务逻辑
    private Integer numPrints;//打印次数
    private Float seq;//排序序号
    private java.util.Date createTime;//创建时间,DB自动填充
    private String createUser;//创建人
    private java.util.Date lastTime;//最后一次修改时间
    private String lastUser;//修改人
}
